package com.leo.hbase.mapreduce.service;

import com.leo.hbase.mapreduce.exception.DbException;

import java.util.Map;
import java.util.Properties;
import java.util.Set;

/**
 * @author leo.jie (weixiao.me@aliyun.com)
 * @version 1.0
 * @organization CC
 * @website https://www.jlpyyf.com
 * @date 2019/11/13 9:29 下午
 * @since 1.0
 */
public abstract class AbstractDbService {
    /**
     * 数据库配置
     */
    private Properties properties = new Properties();

    /**
     * 设置数据库配置
     *
     * @param p 自定义的数据库配置
     */
    public void setProperties(Properties p) {
        properties = p;
    }

    /**
     * 获取设置的数据库配置
     *
     * @return 数据库配置
     */
    public Properties getProperties() {
        return properties;
    }

    /**
     * 初始化数据库状态
     *
     * @throws DbException 自定义异常
     */
    public void init() throws DbException {

    }

    /**
     * 释放资源
     *
     * @throws DbException 自定义异常
     */
    public void cleanup() throws DbException {

    }

    public abstract Map<String, ByteIterator> read(String table, String columnFamily, String key, Set<String> fields);
}
